/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ssp.utility;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * パラメータ設定ファイルから設定値を取得するためのクラス
 * @author yamazaki
 */
public class PropertyManager {
    
    /**
     * パラメータ設定ファイル
     */
    private final static String PARAMETERS_PROPERTIES = "parameters.properties";
    
    /**
     * Propertiesオブジェクト
     */
    private final static Properties properties;
    
    /**
     * static initializer
     */
    static {
        
        properties = new Properties();
        final InputStream inStream = ClassLoader.getSystemResourceAsStream(PARAMETERS_PROPERTIES);
        
        try {
            properties.load(inStream);
        } catch(IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if(inStream != null) {
                    inStream.close();
                }
            } catch(IOException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * keyに対応する値を返す
     * @param key キー
     * @return keyに対応する値
     */
    public static String getValueAsString(String key) {
        return properties.getProperty(key);
    }

    /**
     * keyに対応する値をdouble型で返す
     * @param key キー
     * @return keyに対応する値
     */
    public static double getValueAsDouble(String key) {
        return Double.parseDouble(properties.getProperty(key));
    }

    /**
     * keyに対応する値をboolean型で返す
     * @param key キー
     * @return keyに対応する値
     */
    public static boolean getValueAsBoolean(String key) {
        return Boolean.parseBoolean(properties.getProperty(key));
    }

    /**
     * keyに対応する値をint型で返す
     * @param key キー
     * @return keyに対応する値
     */
    public static int getValueAsInteger(String key) {
        return Integer.parseInt(properties.getProperty(key));
    }

    /**
     * keyに対応する値をlong型で返す
     * @param key キー
     * @return keyに対応する値
     */
    public static long getValueAsLong(String key) {
        return Long.parseLong(properties.getProperty(key));
    }
    
}
